<?php
header('Content-type:text/html;charset=utf-8');
function fun(&$args){
    echo $args[0]+$args[1];
    $num=func_num_args();//获取该函数有几个参数
    var_dump($num);
    $get=func_get_args();//把该函数的所有参数拼接在一个数组里
    var_dump($get);
}
$s=array(10,20);
fun($s);

$a=array('a','b','c',array('aa','bb',array(1,2,3)));
echo $a[3][2][0];//1
var_dump($a);
$array=range(10,13);//range建立一个在10~13之间的数组
print_r($array);
$array1=range('a','z');
$b=array_merge($array,$array1);//array_merge合并数组
print_r($b);
echo "<br/>";
$c=array_rand($b,4);//随机取出数组内的元素，返回下标数组
print_r($c);
echo "<br/>";
foreach($c as $v){
    var_dump($b[$v]);
}
shuffle($c);//打乱数组
print_r($c);
echo "<br/>";
$isa=array('to','you');
if(is_array($isa)){//检测变量是否是数组
    echo 'yes';
}else{
    echo 'no';
}
echo "<br/>";
$keys=array_keys($isa);//返回所有键名
$vals=array_values($isa);//返回所有值
var_dump($keys);
var_dump($vals);

$arr1=array('name','sex','age','a');
$arr2=array('李白','男',22,'a');
$arr=array_combine($arr1,$arr2);
var_dump($arr);
var_dump(in_array('男',$arr));//数组是否存在某个值
var_dump(array_key_exists('names',$arr));//数组是否存在某个键
#数组运算函数
$sum=array('num1','num2','num3');
$str=implode('--',$sum);//将数组连接成字符串
echo $str,'<br/>';
print_r(explode('--',$str));//将数组分割成一个数组
$cj=array_diff($arr2,$arr1);//计算数组的差集
var_dump($cj);
$jj=array_intersect($arr1,$arr2);//计算数组的交集
var_dump($jj);
#使用回掉函数的函数
$rr=array(10,-20,23,-48);
$rr1=array_map('abs',$rr);
print_r($rr1);
array_walk($rr,function($val){
    echo $val,'<br/>';
});
array_walk($rr,function($val,$key){
    echo $key,'=>',$val,'<br/>';
});
#模拟栈（先进后出）和队列（先进先出）效果的函数
$list=array();
array_push($list,'李白');//进'李白'
array_push($list,'杜甫','白居易','辛弃疾');//压入栈
var_dump($list);
echo '<br/>';
array_pop($list);//出栈'辛弃疾'
var_dump($list);
array_shift($list);//从头部弹出一个
var_dump($list);
array_unshift($list,'wo');//从头部插入一个
var_dump($list);
#数组排序函数
$sort=array('a'=>10,'b'=>12,'c'=>8);
sort($sort);//按值升序排序，不保留原来键值的关联
var_dump($sort);//array([0]=>8 [1]=>10 [2]=>12);
rsort($sort);//按值降序排序，不保留原来键值的关联
var_dump($sort);
asort($sort);//按值升序排序，保留原来键值的关联
var_dump($sort);
arsort($sort);//按值降序排序，保留原来键值的关联
var_dump($sort);
ksort($sort);//按键升序排序
var_dump($sort);
krsort($sort);//按键降序排序
var_dump($sort);
natsort($sort);
var_dump($sort);
#字符串操作
$stn=' abcde ';
echo strlen($stn),'<br/>';//获取长度
trim($stn);//去除两边空格
ltrim($stn);//去除左边空格
rtrim($stn);//去除右边空格
?>